/**
 * promise 的特点 以及概念
 *      promise A+ 规范
 * ES 6 内部已经实现, IE 不支持, 需要 polyfill es6-promise
 * promise 为什么会产生
 *  解决异步问题
 *    - 多个异步请求并发 (希望同步最终的结果) Promise.all
 *    - 链式异步请求的问题 上一个人的输出 是下一个人的 输入 导致 回调地狱 Promise 的链式调用可以解决这个问题
 *    - 缺陷 :还是基于回调的, 无法中断 结果
 * 
 */

// 1. promise 有三个状态： 成功（resolve） 失败（reject） 等待（既不成功也不失败， 默认）
// 2. 用户自己决定 失败的原因和 成功的原因 成功 和 失败的原因也是用户定义的
// 3. promise默认执行器 是 立即执行的
// 4. promise 的实例都拥有一个 then 方法, 一个参数 是成功的 回调, 另一个是 失败的回调
// 5. 如果执行函数时 发生啦异常 也会 执行失败逻辑
// 6. 如果 promise 一旦成功就不能失败, 反之亦然

let promise = require('./promise')

let promise = new Promise((resolve, reject) => {
    console.log(1)
    // resolve('成功')
    // reject('失败')
})
promise.then((data) => {
    console.log(data)
}, (err) => {
    console.log(err)
})

console.log(2)






